home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / gem / l_0399 / 295 < prev    next >
Encoding:
Internet Message Format  |  1994-08-27  |  7.1 KB

  1. Date: Sat, 4 Jun 94 20:43 BST-1
  2. From: Andre Willey <andre@cix.compulink.co.uk>
  3. Subject: DEFAULT.SYS: Draft proposal, 4/6/94
  4. To: gem-list@world.std.com
  5. Message-Id: <memo.293393@cix.compulink.co.uk>
  6. Precedence: bulk
  7.  
  8.  
  9.  
  10. I have added the various new suggestions from the group to this proposal, and 
  11. formalised one or two things. Comments and discussion on this new proposal are 
  12. welcome. When everyone is finally happy, we can put it to a vote to formally 
  13. ratify it. Is anyone from Atari US/US/Germany on this list as yet? I think we 
  14. need to contact them for their input if we are to get anywhere with either of 
  15. the two proposals currently being discussed.
  16.  
  17.  
  18.  
  19.  
  20.   Proposal for the creation of a system-wide 'default settings' lookup file
  21.   =========================================================================
  22.  
  23.           Andre Willey (andre@cix.compulink.co.uk)    6 Jun 1994
  24.  
  25.  
  26. It is proposed that we designate a new system file, to be called DEFAULT.SYS, 
  27. which will be used to configure all application programs so that they use a 
  28. common set of keyboard shortcuts, as defined by the user. In the longer term, 
  29. this same file will be easily extensible to support other system default 
  30. settings - but for now let's just get the keyboard stuff sorted out!
  31.  
  32. The DEFAULT.SYS file will be located in the root directory of the current boot 
  33. drive, and may be accessed by any program in order to configure itself to the 
  34. user's wishes. If such a file is not found, the default keys should be set up 
  35. as per the general keyboard shortcuts proposal (managed by Ofir Gal).
  36.  
  37.  
  38. General file format
  39. ===================
  40.  
  41. DEFAULT.SYS will be a plain ASCII text file, using <CR><LF> line ends, which 
  42. can be edited manually by the user, or optionally via an editor program or CPX.
  43.  
  44. The first line will be a unique header, to indicate that what follows are a 
  45. series of keyboard shortcut lines. I suggest:
  46.  
  47.   # Keyboard_Shortcuts      ; Optional Comments (e.g. language translations)
  48.  
  49. All subsequent lines, until another definition line starting with '#' is found, 
  50. will comprise either a simple comment line (starting with ';'), or a keyboard 
  51. shortcut definition of the following form:
  52.  
  53.   0 ^Q ; Quit
  54.   ^  ^   ^
  55.   |  |   Comment text (not parsed; can be any language, or indeed several)
  56.   |  |
  57.   |  Keypress (user-editable. Uses syntax listed below)
  58.   |
  59.   Code number, unique to a given operation (e.g. 0 for Quit, 1 for Close
  60.   Window, etc.)
  61.  
  62. [Note: The series of actual code numbers will not be created until the default 
  63. keyboard shortcuts list is approved, at which stage each one will be assigned a 
  64. unique code number]
  65.  
  66.  
  67. Each application which supports this new system should read the DEFAULT.SYS 
  68. file during its installation process. When it finds a "# Keyboard_Shortcuts" 
  69. header line (which currently will be the first line of the file, but don't 
  70. presume that to be the case for ever) it will parse each subsequent line and 
  71. assign the requested keyboard shortcut to the appropriate internal operation. 
  72. Not all codes will apply to all types of program, so an application should only 
  73. bother parsing those codes which it understands and requires (all other codes 
  74. should be ignored). Some programs may only need a couple of shortcuts - perhaps 
  75. even just 'Quit' - and it is entirely up to the programmer to decide how many 
  76. shortcuts he/she wishes to support.
  77.  
  78. The application should cease looking for keyboard shortcuts as soon as it comes 
  79. across any line starting with a '#' character, or when it reaches the end of 
  80. the file. I suggest, for convenience's sake, that we allow for a "# EOF" line, 
  81. but at this stage that is implied anyway.
  82.  
  83.  
  84. Naming conventions for shortcuts
  85. ================================
  86.  
  87. It is proposed that we use the following terminology to refer to keys (both 
  88. within the shortcuts file and in menu entries):
  89.  
  90.    Tab, Spce, Caps, Ret, Del, Bksp, Esc, Help, Undo, Ins, F1-F10, Clr (Home?)
  91.  
  92.    Numeric keypad keys should be shown as [1], [2], [+], [-], etc. Thus, to 
  93.    conform, Enter should be shown as [Ent], rather than just Enter.
  94.  
  95.    Arrow keys are shown as the ASCII arrow symbols (ASCII 1-4) within square 
  96.    brackets (this avoids clashes with up-arrow for shift and right-arrow for 
  97.    submenu, etc.)
  98.  
  99.    Modifiers: ASCII 1 (up-arrow) for Shift. ^ for Control. ASCII 7 for Alt.
  100.    Modifiers should be displayed in the above order. Alt-Control combinations 
  101.    should be avoided wherever possible.
  102.  
  103.  
  104. Menu options
  105. ============
  106.  
  107. Ideally, every shortcut that directly represents a menu option should be shown 
  108. as part of the text of that same menu item. However, there are going to be some 
  109. shortcuts that don't physically fit into menus. This can't be avoided (e.g. a 
  110. user sets up Shift-Control-Alt-Undo, or some such). An application should put 
  111. shortcuts into its menus *where it has space to do so* - but if it can't for 
  112. any reason, just flag that menu option as having a shortcut which doesn't fit. 
  113. For the sake of argument, shall we agree on using the ASCII 240 character for 
  114. this purpose? If possible, an application should allow up to 6 characters of 
  115. space for shortcuts in menus (this is only a guideline; some applications won't 
  116. be able to do this).
  117.  
  118.  
  119. Clashes
  120. =======
  121.  
  122. If a user-requested shortcut clashes with another shortcut setting (perhaps for 
  123. some 'specialised' internal command for which we don't yet have a shortcut code 
  124. defined) the user-requested shortcut should be honoured, and the internal 
  125. operation becomes unassigned. i.e. the user's requirements are satisfied first, 
  126. the programmer's second.
  127.  
  128. To help alleviate this problem, application-specific shortcuts (e.g. DTP, MIDI, 
  129. Database, etc) will have ranges of numbers assigned for their use only, which 
  130. all other types of program should ignore. I propose assigning blocks of 1000 
  131. codes (e.g. 0-999 for defaults, 1000-1999 for DTP, etc). This should allow more 
  132. than enough entries, and make the divisions more obvious when examining the 
  133. file. We need to decide on useful categories, but this could be done later in 
  134. the standard and need not hold up the basic default system.
  135.  
  136. The golden rule for parsing codes should be "if your program doesn't understand 
  137. a code, ignore it".
  138.  
  139. If, for some daft reason, the user tries to assign the same shortcut twice - or 
  140. they have used the same code number twice - follow the same rules and throw 
  141. away the existing copy and use the new one (i.e. don't write any extra code to 
  142. cover this eventuality; treat it like an internally defined code is being 
  143. overwritten). Any DEFAULT.SYS editor programs should watch out for and prevent 
  144. such internal clashes, though.
  145.  
  146.  
  147. Finally
  148. =======
  149.  
  150. If this standard is to be accepted, we must keep it SIMPLE. Esoteric and 
  151. complicated solutions to specific problems probably won't help endear the 
  152. system to programmers. If must be easy for the user to understand, and for the 
  153. program to handle, or it simply won't get used.
  154.  
  155. Andre
  156.  
  157.  +------------------------------------+-------------------------------+
  158.  |            Andre Willey            |  Cygnus Software Development  |
  159.  |  Email: andre@cix.compulink.co.uk  |  Sutton Coldfield -- England  |
  160.  |   or: ...{mcsun}!uknet!cix!andre   |  Tel:  (UK/+44) 021 308 5251  |
  161.  +------------------------------------+-------------------------------+
  162.